package yaml

import (
	"github.com/anydev/simple_gin/pkg/config/encoder"
	"gopkg.in/yaml.v2"
)

// YAML 编码器
type yamlEncoder struct{}

// Encode 编码配置数据为 YAML 格式的字节流
func (y yamlEncoder) Encode(v interface{}) ([]byte, error) {
	return yaml.Marshal(v)
}

// Decode 解码 YAML 格式的字节流为配置数据
func (y yamlEncoder) Decode(d []byte, v interface{}) error {
	return yaml.Unmarshal(d, v)
}

// String 返回编码器的名称
func (y yamlEncoder) String() string {
	return "yaml"
}

// NewEncoder 创建一个新的 YAML 编码器
func NewEncoder() encoder.Encoder {
	return yamlEncoder{}
}
